package com.yunxin.core.infra.persistence.entity.product;

import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 产品质量表包含限速
 */
@Schema(description="产品质量表包含限速")
@TableName("product_quality_config")
public class ProductQualityConfig {
    @Schema(description="")
    @NotNull(message = "id为空")
    private Long id;

    /**
    * 产品id
    */
    @Schema(description="产品id")
    @NotNull(message = "产品id为空")
    private Long productId;

    /**
    * -1不限制 暂定每分钟限制数量
    */
    @Schema(description="-1不限制 暂定每分钟限制数量")
    @NotNull(message = "限制数量为空")
    private Integer minuteNum;

    /**
    * 0默认关闭 1开启
    */
    @Schema(description="0默认关闭 1开启")
    @NotNull(message = "开关为空")
    private Integer sexSwitch;

    /**
    *  1.男 2.女
    */
    @Schema(description=" 1.男 2.女")
    private Integer sex;

    /**
    *  0.关闭 1.开启
    */
    @Schema(description=" 0.关闭 1.开启")
    @NotNull(message = "开关为空")
    private Integer ageSwitch;

    @Schema(description="")
    private Integer age;

    /**
    * 芝麻分额度 1.额度550及以上 2.额度600及以上 3.额度650及以上 4.额度700及以上
    */
    @Schema(description="芝麻分额度 1.额度550及以上 2.额度600及以上 3.额度650及以上 4.额度700及以上")
    private Integer sesameSeedQuota;

    /**
    * 芝麻分额度开关 0.关闭 1.开启
    */
    @Schema(description="芝麻分额度开关 0.关闭 1.开启")
    @NotNull(message = "开关为空")
    private Integer sesameSeedQuotaSwitch;

    /**
    * 信用卡  1.有信用卡 2.无信用卡 
    */
    @Schema(description="信用卡  1.有信用卡 2.无信用卡 ")
    private Integer creditCard;

    /**
    * 信用卡开关 0.关闭 1.开启
    */
    @Schema(description="信用卡开关 0.关闭 1.开启")
    @NotNull(message = "开关为空")
    private Integer creditCardSwitch;

    /**
    * 教育程度  1.初中及以下 2.高中 3.中专 4.大专 5.本科 6.硕士 7.博士 
    */
    @Schema(description="教育程度  1.初中及以下 2.高中 3.中专 4.大专 5.本科 6.硕士 7.博士 ")
    private Integer educationLevel;

    /**
    * 教育程度开关 0.关闭 1.开启
    */
    @Schema(description="教育程度开关 0.关闭 1.开启")
    @NotNull(message = "开关为空")
    private Integer educationLevelSwitch;

    /**
    * 房产情况  1.有房可抵押 2.有房不抵押 3.无房产 
    */
    @Schema(description="房产情况  1.有房可抵押 2.有房不抵押 3.无房产 ")
    private Integer houseLevel;

    /**
    * 房产情况开关 0.关闭 1.开启
    */
    @Schema(description="房产情况开关 0.关闭 1.开启")
    @NotNull(message = "开关为空")
    private Integer houseLevelSwitch;

    /**
    * 车产情况  1.有车可抵押 2.有车不抵押 3.无车产 
    */
    @Schema(description="车产情况  1.有车可抵押 2.有车不抵押 3.无车产 ")
    private Integer vehicleLevel;

    /**
    * 车产情况开关 0.关闭 1.开启
    */
    @Schema(description="车产情况开关 0.关闭 1.开启")
    @NotNull(message = "开关为空")
    private Integer vehicleLevelSwitch;

    /**
    * 公积金情况  1.连续缴纳6个月及以上 2.缴纳未满6个月 3.无公积金 
    */
    @Schema(description="公积金情况  1.连续缴纳6个月及以上 2.缴纳未满6个月 3.无公积金 ")
    private Integer accumulationFundLevel;

    /**
    * 公积金情况开关 0.关闭 1.开启
    */
    @Schema(description="公积金情况开关 0.关闭 1.开启")
    private Integer accumulationFundLevelSwitch;

    /**
    * 社保情况  1.连续缴纳6个月及以上 2.缴纳未满6个月 3.无社保 
    */
    @Schema(description="社保情况  1.连续缴纳6个月及以上 2.缴纳未满6个月 3.无社保 ")
    private Integer socialSecurityLevel;

    /**
    * 社保情况开关 0.关闭 1.开启
    */
    @Schema(description="社保情况开关 0.关闭 1.开启")
    @NotNull(message = "开关为空")
    private Integer socialSecurityLevelSwitch;

    /**
    * 保险  1.缴纳满一年 2.缴纳未满一年 3.无保单 
    */
    @Schema(description="保险  1.缴纳满一年 2.缴纳未满一年 3.无保单 ")
    private Integer insure;

    /**
    * 保险开关 0.关闭 1.开启
    */
    @Schema(description="保险开关 0.关闭 1.开启")
    @NotNull(message = "开关为空")
    private Integer insureSwitch;

    /**
    * 职业 1.民企员工 2.外企员工 3.企业主 4.个体户 5.公务员 6.事业单位员工 7.国企员工 8.自由职业 9.其他 
    */
    @Schema(description="职业 1.民企员工 2.外企员工 3.企业主 4.个体户 5.公务员 6.事业单位员工 7.国企员工 8.自由职业 9.其他 ")
    private Integer occupation;

    /**
    * 职业开关 0.关闭 1.开启
    */
    @Schema(description="职业开关 0.关闭 1.开启")
    @NotNull(message = "开关为空")
    private Integer occupationSwitch;

    /**
    * 职业收入 1.月收入3500以下 2.月收入3500-6000 3.月收入6000-10000 4.月收入10000-20000 5.月收入20000以上
    */
    @Schema(description="职业收入 1.月收入3500以下 2.月收入3500-6000 3.月收入6000-10000 4.月收入10000-20000 5.月收入20000以上")
    private Integer occupationMonthlyIncome;

    /**
    * 职业收入开关 0.关闭 1.开启
    */
    @Schema(description="职业收入开关 0.关闭 1.开启")
    @NotNull(message = "开关为空")
    private Integer occupationMonthlyIncomeSwitch;

    /**
    * 京东白条额度  1.额度1000以下 2.额度1000-5000 3.额度5000-10000 4.额度10000以上 5.无 
    */
    @Schema(description="京东白条额度  1.额度1000以下 2.额度1000-5000 3.额度5000-10000 4.额度10000以上 5.无 ")
    private Integer jdBtQuota;

    /**
    * 京东白条额度开关 0.关闭 1.开启
    */
    @Schema(description="京东白条额度开关 0.关闭 1.开启")
    @NotNull(message = "开关为空")
    private Integer jdBtQuotaSwitch;

    /**
    * 蚂蚁花呗额度  1.额度1000以下 2.额度1000-5000 3.额度5000-10000 4.额度10000以上 5.无 
    */
    @Schema(description="蚂蚁花呗额度  1.额度1000以下 2.额度1000-5000 3.额度5000-10000 4.额度10000以上 5.无 ")
    private Integer antCreditPayQuota;

    /**
    * 蚂蚁花呗额度开关 0.关闭 1.开启
    */
    @Schema(description="蚂蚁花呗额度开关 0.关闭 1.开启")
    @NotNull(message = "开关为空")
    private Integer antCreditPayQuotaSwitch;

    /**
    * 微粒贷额度  1.额度5000以下 2.额度5000-10000 3.额度10000-20000 4.额度20000以上 5.无 
    */
    @Schema(description="微粒贷额度  1.额度5000以下 2.额度5000-10000 3.额度10000-20000 4.额度20000以上 5.无 ")
    private Integer microLoanQuota;

    /**
    * 微粒贷额度开关 0.关闭 1.开启
    */
    @Schema(description="微粒贷额度开关 0.关闭 1.开启")
    @NotNull(message = "开关为空")
    private Integer microLoanQuotaSwitch;

    /**
    * 逾期  1.否 2.是 
    */
    @Schema(description="逾期  1.否 2.是 ")
    private Integer beOverdue;

    /**
    * 逾期开关 0.关闭 1.开启
    */
    @Schema(description="逾期开关 0.关闭 1.开启")
    @NotNull(message = "开关为空")
    private Integer beOverdueSwitch;

    /**
    * 标识删除 0.存在 1.删除
    */
    @Schema(description="标识删除 0.存在 1.删除")
    private Integer isDel;

    /**
    * 创建人
    */
    @Schema(description="创建人")
    private String creator;

    /**
    * 修改人
    */
    @Schema(description="修改人")
    private String editor;

    /**
    * 创建时间
    */
    @Schema(description="创建时间")
    private Date createTime;

    /**
    * 更新时间
    */
    @Schema(description="更新时间")
    private Date editTime;

    /**
    * 版本号
    */
    @Schema(description="版本号")
    private Long version;


    /**
     * 工作城市
     */
    @Schema(description="工作城市")
    private String workCity;

    /**
     * 工作城市
     */
    @Schema(description="城市开关 0.关闭 1.开启")
    @NotNull(message = "开关为空")
    private Integer workCitySwitch;

    /**
     * 借款金额
     */
    @Schema(description="借款金额")
    private BigDecimal loanAmount;

    /**
     * 借款金额开关
     */
    @Schema(description="借款金额 0.关闭 1.开启")
    @NotNull(message = "开关为空")
    private Integer loanAmountSwitch;

    /**
     * 借款期限 1.借款3个月 2.借款6个月 3.借款9个月 4.借款12个月 5.借款24个月
     */
    @Schema(description="借款期限")
    private Integer loanPeriod;


    /**
     * 借款期限开关
     */
    @Schema(description="借款期限 0.关闭 1.开启")
    @NotNull(message = "开关为空")
    private Integer loanPeriodSwitch;


    public Integer getLoanPeriod() {
        return loanPeriod;
    }

    public void setLoanPeriod(Integer loanPeriod) {
        this.loanPeriod = loanPeriod;
    }

    public Integer getLoanPeriodSwitch() {
        return loanPeriodSwitch;
    }

    public void setLoanPeriodSwitch(Integer loanPeriodSwitch) {
        this.loanPeriodSwitch = loanPeriodSwitch;
    }

    public BigDecimal getLoanAmount() {
        return loanAmount;
    }



    public void setLoanAmount(BigDecimal loanAmount) {
        this.loanAmount = loanAmount;
    }

    public Integer getLoanAmountSwitch() {
        return loanAmountSwitch;
    }

    public void setLoanAmountSwitch(Integer loanAmountSwitch) {
        this.loanAmountSwitch = loanAmountSwitch;
    }

    public String getWorkCity() {
        return workCity;
    }

    public void setWorkCity(String workCity) {
        this.workCity = workCity;
    }

    public Integer getWorkCitySwitch() {
        return workCitySwitch;
    }

    public void setWorkCitySwitch(Integer workCitySwitch) {
        this.workCitySwitch = workCitySwitch;
    }


    public Integer getAccumulationFundLevelSwitch() {
        return accumulationFundLevelSwitch;
    }

    public void setAccumulationFundLevelSwitch(Integer accumulationFundLevelSwitch) {
        this.accumulationFundLevelSwitch = accumulationFundLevelSwitch;
    }

    public Integer getSocialSecurityLevel() {
        return socialSecurityLevel;
    }

    public void setSocialSecurityLevel(Integer socialSecurityLevel) {
        this.socialSecurityLevel = socialSecurityLevel;
    }

    public Integer getSocialSecurityLevelSwitch() {
        return socialSecurityLevelSwitch;
    }

    public void setSocialSecurityLevelSwitch(Integer socialSecurityLevelSwitch) {
        this.socialSecurityLevelSwitch = socialSecurityLevelSwitch;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getProductId() {
        return productId;
    }

    public void setProductId(Long productId) {
        this.productId = productId;
    }

    public Integer getMinuteNum() {
        return minuteNum;
    }

    public void setMinuteNum(Integer minuteNum) {
        this.minuteNum = minuteNum;
    }

    public Integer getSexSwitch() {
        return sexSwitch;
    }

    public void setSexSwitch(Integer sexSwitch) {
        this.sexSwitch = sexSwitch;
    }

    public Integer getSex() {
        return sex;
    }

    public void setSex(Integer sex) {
        this.sex = sex;
    }

    public Integer getAgeSwitch() {
        return ageSwitch;
    }

    public void setAgeSwitch(Integer ageSwitch) {
        this.ageSwitch = ageSwitch;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Integer getSesameSeedQuota() {
        return sesameSeedQuota;
    }

    public void setSesameSeedQuota(Integer sesameSeedQuota) {
        this.sesameSeedQuota = sesameSeedQuota;
    }

    public Integer getSesameSeedQuotaSwitch() {
        return sesameSeedQuotaSwitch;
    }

    public void setSesameSeedQuotaSwitch(Integer sesameSeedQuotaSwitch) {
        this.sesameSeedQuotaSwitch = sesameSeedQuotaSwitch;
    }

    public Integer getCreditCard() {
        return creditCard;
    }

    public void setCreditCard(Integer creditCard) {
        this.creditCard = creditCard;
    }

    public Integer getCreditCardSwitch() {
        return creditCardSwitch;
    }

    public void setCreditCardSwitch(Integer creditCardSwitch) {
        this.creditCardSwitch = creditCardSwitch;
    }

    public Integer getEducationLevel() {
        return educationLevel;
    }

    public void setEducationLevel(Integer educationLevel) {
        this.educationLevel = educationLevel;
    }

    public Integer getEducationLevelSwitch() {
        return educationLevelSwitch;
    }

    public void setEducationLevelSwitch(Integer educationLevelSwitch) {
        this.educationLevelSwitch = educationLevelSwitch;
    }

    public Integer getHouseLevel() {
        return houseLevel;
    }

    public void setHouseLevel(Integer houseLevel) {
        this.houseLevel = houseLevel;
    }

    public Integer getHouseLevelSwitch() {
        return houseLevelSwitch;
    }

    public void setHouseLevelSwitch(Integer houseLevelSwitch) {
        this.houseLevelSwitch = houseLevelSwitch;
    }

    public Integer getVehicleLevel() {
        return vehicleLevel;
    }

    public void setVehicleLevel(Integer vehicleLevel) {
        this.vehicleLevel = vehicleLevel;
    }

    public Integer getVehicleLevelSwitch() {
        return vehicleLevelSwitch;
    }

    public void setVehicleLevelSwitch(Integer vehicleLevelSwitch) {
        this.vehicleLevelSwitch = vehicleLevelSwitch;
    }

    public Integer getAccumulationFundLevel() {
        return accumulationFundLevel;
    }

    public void setAccumulationFundLevel(Integer accumulationFundLevel) {
        this.accumulationFundLevel = accumulationFundLevel;
    }


    public Integer getInsure() {
        return insure;
    }

    public void setInsure(Integer insure) {
        this.insure = insure;
    }

    public Integer getInsureSwitch() {
        return insureSwitch;
    }

    public void setInsureSwitch(Integer insureSwitch) {
        this.insureSwitch = insureSwitch;
    }

    public Integer getOccupation() {
        return occupation;
    }

    public void setOccupation(Integer occupation) {
        this.occupation = occupation;
    }

    public Integer getOccupationSwitch() {
        return occupationSwitch;
    }

    public void setOccupationSwitch(Integer occupationSwitch) {
        this.occupationSwitch = occupationSwitch;
    }

    public Integer getOccupationMonthlyIncome() {
        return occupationMonthlyIncome;
    }

    public void setOccupationMonthlyIncome(Integer occupationMonthlyIncome) {
        this.occupationMonthlyIncome = occupationMonthlyIncome;
    }

    public Integer getOccupationMonthlyIncomeSwitch() {
        return occupationMonthlyIncomeSwitch;
    }

    public void setOccupationMonthlyIncomeSwitch(Integer occupationMonthlyIncomeSwitch) {
        this.occupationMonthlyIncomeSwitch = occupationMonthlyIncomeSwitch;
    }

    public Integer getJdBtQuota() {
        return jdBtQuota;
    }

    public void setJdBtQuota(Integer jdBtQuota) {
        this.jdBtQuota = jdBtQuota;
    }

    public Integer getJdBtQuotaSwitch() {
        return jdBtQuotaSwitch;
    }

    public void setJdBtQuotaSwitch(Integer jdBtQuotaSwitch) {
        this.jdBtQuotaSwitch = jdBtQuotaSwitch;
    }

    public Integer getAntCreditPayQuota() {
        return antCreditPayQuota;
    }

    public void setAntCreditPayQuota(Integer antCreditPayQuota) {
        this.antCreditPayQuota = antCreditPayQuota;
    }

    public Integer getAntCreditPayQuotaSwitch() {
        return antCreditPayQuotaSwitch;
    }

    public void setAntCreditPayQuotaSwitch(Integer antCreditPayQuotaSwitch) {
        this.antCreditPayQuotaSwitch = antCreditPayQuotaSwitch;
    }

    public Integer getMicroLoanQuota() {
        return microLoanQuota;
    }

    public void setMicroLoanQuota(Integer microLoanQuota) {
        this.microLoanQuota = microLoanQuota;
    }

    public Integer getMicroLoanQuotaSwitch() {
        return microLoanQuotaSwitch;
    }

    public void setMicroLoanQuotaSwitch(Integer microLoanQuotaSwitch) {
        this.microLoanQuotaSwitch = microLoanQuotaSwitch;
    }

    public Integer getBeOverdue() {
        return beOverdue;
    }

    public void setBeOverdue(Integer beOverdue) {
        this.beOverdue = beOverdue;
    }

    public Integer getBeOverdueSwitch() {
        return beOverdueSwitch;
    }

    public void setBeOverdueSwitch(Integer beOverdueSwitch) {
        this.beOverdueSwitch = beOverdueSwitch;
    }

    public Integer getIsDel() {
        return isDel;
    }

    public void setIsDel(Integer isDel) {
        this.isDel = isDel;
    }

    public String getCreator() {
        return creator;
    }

    public void setCreator(String creator) {
        this.creator = creator;
    }

    public String getEditor() {
        return editor;
    }

    public void setEditor(String editor) {
        this.editor = editor;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getEditTime() {
        return editTime;
    }

    public void setEditTime(Date editTime) {
        this.editTime = editTime;
    }

    public Long getVersion() {
        return version;
    }

    public void setVersion(Long version) {
        this.version = version;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", productId=").append(productId);
        sb.append(", minuteNum=").append(minuteNum);
        sb.append(", sexSwitch=").append(sexSwitch);
        sb.append(", sex=").append(sex);
        sb.append(", ageSwitch=").append(ageSwitch);
        sb.append(", age=").append(age);
        sb.append(", sesameSeedQuota=").append(sesameSeedQuota);
        sb.append(", sesameSeedQuotaSwitch=").append(sesameSeedQuotaSwitch);
        sb.append(", creditCard=").append(creditCard);
        sb.append(", creditCardSwitch=").append(creditCardSwitch);
        sb.append(", educationLevel=").append(educationLevel);
        sb.append(", educationLevelSwitch=").append(educationLevelSwitch);
        sb.append(", houseLevel=").append(houseLevel);
        sb.append(", houseLevelSwitch=").append(houseLevelSwitch);
        sb.append(", vehicleLevel=").append(vehicleLevel);
        sb.append(", vehicleLevelSwitch=").append(vehicleLevelSwitch);
        sb.append(", accumulationFundLevel=").append(accumulationFundLevel);
        sb.append(", socialSecurityLevel=").append(socialSecurityLevel);
        sb.append(", insure=").append(insure);
        sb.append(", insureSwitch=").append(insureSwitch);
        sb.append(", occupation=").append(occupation);
        sb.append(", occupationSwitch=").append(occupationSwitch);
        sb.append(", occupationMonthlyIncome=").append(occupationMonthlyIncome);
        sb.append(", occupationMonthlyIncomeSwitch=").append(occupationMonthlyIncomeSwitch);
        sb.append(", jdBtQuota=").append(jdBtQuota);
        sb.append(", jdBtQuotaSwitch=").append(jdBtQuotaSwitch);
        sb.append(", antCreditPayQuota=").append(antCreditPayQuota);
        sb.append(", antCreditPayQuotaSwitch=").append(antCreditPayQuotaSwitch);
        sb.append(", microLoanQuota=").append(microLoanQuota);
        sb.append(", microLoanQuotaSwitch=").append(microLoanQuotaSwitch);
        sb.append(", beOverdue=").append(beOverdue);
        sb.append(", beOverdueSwitch=").append(beOverdueSwitch);
        sb.append(", isDel=").append(isDel);
        sb.append(", creator=").append(creator);
        sb.append(", editor=").append(editor);
        sb.append(", createTime=").append(createTime);
        sb.append(", editTime=").append(editTime);
        sb.append(", version=").append(version);
        sb.append("]");
        return sb.toString();
    }
}